package com.ruoyi.system.mapper.vant.customer;

import com.ruoyi.system.domain.customer.CustomerAddr;
import com.ruoyi.system.domain.customer.CustomerCoupon;

import java.util.List;

public interface ApiCustomerMapper {

    /**
     * 查询用户地址列表
     * @return
     */
    public List<CustomerAddr> selectCustomerAddressList(Long customerId);

    /**
     * 添加地址信息
     * @param customerAddr
     * @return
     */
    public int insertCustomerAddr(CustomerAddr customerAddr);

    /**
     * 查询用户地址
     *
     * @param customerAddrId 用户地址ID
     * @return 用户地址
     */
    public CustomerAddr selectCustomerAddrById(Long customerAddrId);

    /**
     * 查询默认的收货地址
     * @return
     */
    public CustomerAddr selectCustomerAddrByDefault(CustomerAddr customerAddr);

    /**
     * 根据用户ID查询用户默认的地址信息
     * @param customerAddr
     * @return
     */
    public CustomerAddr selectCustomerAddrByCustomerId(CustomerAddr customerAddr);

    /**
     * 修改用户地址
     *
     * @param customerAddr 用户地址
     * @return 结果
     */
    public int updateCustomerAddr(CustomerAddr customerAddr);

    /**
     * 删除用户地址
     *
     * @param customerAddrId 用户地址ID
     * @return 结果
     */
    public int deleteCustomerAddrById(Long customerAddrId);

    /**
     * 查询客户可用店铺优惠券
     * @param customerCoupon
     * @return
     */
    public List<CustomerCoupon> selectCustomerCouponList(CustomerCoupon customerCoupon);

    /**
     * 我的：查询客户可用的优惠券
     * @param customerId
     * @return
     */
    public List<CustomerCoupon> selectCustomerCoupon(Long customerId);

    /**
     * 领取店铺优惠券
     * @param customerCoupon
     * @return
     */
    public int installCustomerCode(CustomerCoupon customerCoupon);

    /**
     * 查询优惠券是否已存在
     * @param customerCoupon
     * @return
     */
    public int selectCustomerCouponByName(CustomerCoupon customerCoupon);

    /**
     * 设置优惠券状态为已使用
     * @param couponId
     * @return
     */
    public int updateCustomerCouponState(Long couponId);


}
